const express=require('express')
const path=require('path')
const fs=require('fs')
let app=express()
app.listen(3000,()=>{
    console.log('3000ok');
})


// cookie 不能跨域（只在同一个服务器上生效：页面也必须放到服务器上才生效）

// 引入 cookie-parser中间件
let cookieParser=require("cookie-parser")

// 注册中间件
app.use(    cookieParser()  )
app.use(express.urlencoded({extended:true}))


app.get("/login",(req,res)=>{

    
    res.sendFile(path.join(__dirname,"./views/login.html"))
})

app.post("/login",(req,res)=>{


    let {username,password}=req.body
    // 接收到用户提交过来的账号密码：和数据库中的数据做对比
    let persons=JSON.parse(fs.readFileSync( path.join(__dirname,"./data/persons.json") ))
    let index=persons.findIndex(value=>value.username==username && value.password==password)

    if(index==-1){
        res.send("用户名或密码错误")
        return
    }

    // 把此用户的信息标识存储下来-------------------------
    // 存储下来之后，再把cookie发送给客户端---------------
    // 默认会话结束，cookie失效
    // res.cookie("username",username)
    // res.cookie("password",password)
    // res.cookie("a",[1,2,3,4])
    // res.cookie("b",{name:'zs'})


    // res.cookie("属性名",属性值,{maxAge:毫秒})
    res.cookie("username",username,{maxAge:1000*100})
    res.cookie("password",password)
    res.send("登录成功")
})



app.get("/userinfo",(req,res)=>{
    // 登录了才可以访问，没有登录不能访问

    // 当客户端发送请求的时候，浏览器会通过请求头把cookies在传递过来
    console.log(Object.keys(req.cookies).length,3333);//服务器上cookie

    let {username}=req.cookies
    if(!username){
        res.send("请登录")
        return
    }

    res.send(`<h1>欢迎${username}</h1>`)
})


/* 
// 引入 cookie-parser中间件
let cookieParser=require("cookie-parser")

// 注册中间件
app.use(    cookieParser()  )




// 设置cookie
// res.cookie("属性名",属性值) // 会话关闭之后，自动失效
// res.cookie("username",username)
// res.cookie("password",password)


// res.cookie("属性名",属性值,{maxAge:毫秒}) // maxAge 有效期
res.cookie("username",username,{maxAge:1000*100})
res.cookie("password",password)


*/



